package com.hbnu.array;

import java.util.Scanner;

/**
 * 数据加密
 * 键盘录入数据，要求数据是六位的整数,现需要对数据进行加密。加密规则如下：
 *     每位数字都加上5,然后除以10的余数代替该数字,再将第一位和第六位交
 * 换,第二位和第五位交换,第三位和第四位交换,请把加密后的数据输出到控制台
 *
 * @author kittychen
 * @since 2025-09-05 17:36
 */
public class ArrayDemo03 {
    public static void main(String[] args) {
        // 1、创建键盘输入对象
        Scanner scanner = new Scanner(System.in);

        // 2、定义一个整型变量，用于接收键盘输入的6位数
        System.out.println("请输入一个6位数：");
        int number = scanner.nextInt();
        System.out.println("加密前的数据：" + number);

        // 3、将这个6位数拆成个、十、百、千、万、十万位，存入整型数组中
        // 3.1、定义一个整型数组
        int[] arr = new int[6];

        // 3.2、将拆开的数分别存入数组中
        arr[0] = number / 100000;
        arr[1] = number / 10000 % 10;
        arr[2] = number / 1000 % 10;
        arr[3] = number / 100 % 10;
        arr[4] = number / 10 % 10;
        arr[5] = number % 10;

        // 4、数据加密（每位数加上5，除以10之后的余数替换原先的数）
        for (int i = 0; i < 6; i++) {
            arr[i] = (arr[i] + 5) % 10;
        }

        // 5、交换数据（第一位和第六位交换,第二位和第五位交换,第三位和第四位交换）
        int temp = 0;
        for (int i = 0; i < arr.length / 2; i++) {
            temp = arr[i];
            arr[i] = arr[arr.length - 1 - i];
            arr[arr.length - 1 - i] = temp;
        }

        // 6、输出加密后的数据
        System.out.println("加密后的数据：");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]);
        }
    }
}
